Wir betrachten eine Bank und ihre Kunden. Eine Person wird Kunde, wenn sie ein Konto eröffnet. Ein Kunde kann beliebig viele weitere Konten eröffnen. Für jeden neuen Kunden werden Name, Adresse und Datum der ersten Kontoeröffnung erfaßt. Bei Kontoeröffnung muß der Kunde gleich eine erste Einzahlung vornehmen. Wir unterscheiden Girokonten und Sparkonten. Girokonten dürfen bis zu einem bestimmten Betrag überzogen werden. Für jedes Konto wird ein indiv. Habenzins, für Girokonten auch ein indiv. Sollzins festgelegt. Jedes Konto besitzt eine eindeutige Kontonummer. Für jedes Konto wird die Art des Sparens - z.B. Festgeld - gespeichert. Ein Kunde kann Beträge einzahlen und abheben. Habenzinsen werden gutgeschrieben, Überziehungszinsen vom Girokonto abgebucht. Um Zinsen zu berechnen, muß für jede Kontobewegung das Datum und der Betrag notiert werden. Die Gutschrift/Abbuchung der Zinsen erfolgt bei den Sparkonten jährlich und bei den Girokonten quartalsweise. Ein Kunde kann jedes seiner Konten wieder auflösen. Bei der Auflösung des letzten Kontos hört er auf, Kunde zu sein.
In [1]:
import iplantuml
In [2]:
%%plantuml
@startuml
skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
classAttributeIconSize 0
BackgroundColor Yellow
}
class Kunde
abstract class Konto
class Kontobewegung
class Girokonto
class Sparkonto
Kunde "1" - "1..*" Konto
Konto <|-- Girokonto
Konto <|-- Sparkonto
Konto "1" o- "1.*" Kontobewegung
abstract class Konto {
# KontoNr : int
+ Konto(double Betrag)
+ void einzahlen(double Betrag)
+ {abstract} double abheben(double Betrag)
}
class Kunde {
Name
Kunde()
}
class Kontobewegung {
- Datum
- Betrag
+ Konto(Datum: DateTime, double Betrag )
}
class Girokonto {
- Dispo : double
- Sollzins : double
+ double abheben(double Betrag)
}
class Sparkonto {
+ double abheben(double Betrag)
}
@enduml
Out[2]:
wefew jewjjrew ewjewjrwlker
In [ ]:
import plantuml
In [3]:
%%plantuml
@startuml
skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
}
skinparam stereotypeCBackgroundColor YellowGreen classAttributeIconSize 0
class Kunde
abstract class Konto
class Kontobewegung
class Girokonto
class Sparkonto
Kunde - Konto
Konto <|-- Girokonto
Konto <|-- Sparkonto
Konto "1" o- "1.*" Kontobewegung
@enduml
Out[3]: